package com.test;

import java.util.Scanner;

/**
  阿里巴巴笔试题：
  一共有T次事务，每一次事务有三个参数n,m,q
  在n*n的灯阵中，进行m次操作进行开灯，每一次开灯赋予x，y坐标，并且相邻的八个格子都被照亮(但不代表开灯)
  然后q次访问灯阵，判断是否是光明的，然后将每次访问后的格子包括其相邻八个格子的开着的灯全部关闭。
  结果返回q次访问中，光明的次数
  例子：
  输入：
  1
  5 2 2
  1 1
  2 2
  0 0
  0 1
  输出：1
 */
public class test4 {

    public static int[][] lights;
    public static int n;
    public static int m;
    public static int q;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        int Ti = 0;
        int[] res = new int[T];
        for(int i = 1 ; i <= T; i++){
            n = sc.nextInt();
            m = sc.nextInt();
            q = sc.nextInt();
            lights = new int[n][n];
            for(int j = 0;j<m;j++){
                int x = sc.nextInt();
                int y = sc.nextInt();
                lights[x][y] += 10;
                openLight(x,y,0);
                systemOut();
            }
            int sum = 0;
            for(int z = 0;z<q;z++){
                int x = sc.nextInt();
                int y = sc.nextInt();
                if(lights[x][y] > 0){
                    sum++;
                }
                closeLight(x,y,0);
                systemOut();
            }
            res[Ti] = sum;
            Ti++;
        }
        for (int re : res) {
            System.out.println(re);
        }
    }

    public static int[] dx = {0,-1,1};
    public static int[] dy = {0,-1,1};

    public static void openLight(int x,int y,int time){
        if(time >= 1){
            lights[x][y] += 1;
            return;
        }
        for(int i = 0;i<3;i++){
            for(int j = 0;j<3;j++){
                if(dx[i] == 0 && dy[j] ==0)continue;
                x += dx[i];
                y += dy[j];
                if(x>=0 && y>=0 && x<n && y< n){
                    openLight(x,y,++time);
                }
                x -= dx[i];
                y -= dy[j];
            }
        }
    }

    public static void closeLight(int x,int y,int time){
        if(time >= 1){
            if(lights[x][y] >= 10){
                lights[x][y] -= 10;
                closeLight2(x,y,0);
            }
            return;
        }
        for(int i = 0;i<3;i++){
            for(int j = 0;j<3;j++){
                x += dx[i];
                y += dy[j];
                if(x>=0 && y>=0 && x<n && y< n){
                    closeLight(x,y,++time);
                }
                x -= dx[i];
                y -= dy[j];
            }
        }
    }

    public static void closeLight2(int x,int y,int time){
        if(time >= 1){
            if(lights[x][y] >0){
                lights[x][y] -= 1;
            }
            return;
        }
        for(int i = 0;i<3;i++){
            for(int j = 0;j<3;j++){
                if(dx[i] == 0 && dy[j] ==0)continue;
                x += dx[i];
                y += dy[j];
                if(x>=0 && y>=0 && x<n && y< n){
                    closeLight2(x,y,++time);
                }
                x -= dx[i];
                y -= dy[j];
            }
        }
    }

    public static void systemOut(){
        for (int i = 0; i < n; i++) {
            for (int j = 0;j<n ; j++){
                System.out.print(lights[i][j]+" ");
            }
            System.out.println();
        }
    }

}
